Apparatus and method for reducing memory access conflict

ABSTRACT

Provided are an apparatus and a method of reducing memory access conflict. An apparatus for reducing memory access conflict when a plurality of data processing elements perform simultaneous access to a memory including a plurality of pages, each of which includes a plurality of subpages, the apparatus comprising: an access arbiter mapping a subpage division address corresponding to least significant bits of a memory access address received from each of the data processing elements to another address having a same number of bits as the subpage division address in order for data to be output from each of the subpages in a corresponding page at a time of the simultaneous access; and a selector, prepared for each of the pages, selecting to output one of the data output from the subpages using the mapped results.

CROSS-REFERENCE TO RELATED PATENT APPLICATION

This application claims the benefit of Korean Patent Application No.10-2007-0127576, filed on Dec. 10, 2007, in the Korean IntellectualProperty Office, the disclosure of which is incorporated herein in itsentirety by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an apparatus and a method for reducingmemory access conflict, and more particularly, to an apparatus and amethod for minimizing memory access conflict when a plurality of dataprocessing elements simultaneously access a memory page in a paralleldata processing array including a plurality of the data processingelements for processing massive quantity of multimedia data.

This work was partly supported by the IT R&D program of MIC/IITA[2006-S-048-02, Embedded DSP Platform for Audio/Video SignalProcessing].

2. Description of the Related Art

Developments in the information technology (IT) have lead to a dramaticincrease in the number of multimedia apparatuses processing multimediadata such as audio and video, including not only portable devices butalso home appliances. There are various types of multimedia apparatusesavailable, including digital video disc (DVD) players, multimediaplayers supporting motion picture experts group 2 (MPEG-2) datacompression technologies, cellular phones capable of playing back motionpicture, high-definition televisions (HDTV), etc. Video playback andaudio playback for the multimedia apparatuses require massive amounts ofdata. For example, when each pixel of an image of a resolution of 1920by 1200 is expressed in 24 bit, 1.66 Gbps transmission speed is requiredto transmit 30 frames per second in a serial bitstream. The more framerate requires the higher transmission speed. Accordingly most of currentvideo and audio signals employ highly compressing technologies.

There are numerous types of compressing technologies, including MPEG-2,MPEG-4, a H.264, bit sliced arithmetic coding (BSAC), advanced audiocoding plus (AAC+), etc. In order to utilize the above-describedcompressing technologies, a hardware capable of encoding/decoding motionpictures is required. Therefore, most of the present mobile and homemultimedia devices include a very large scale integration (VSLI) for amultimedia codec to encode/decode motion pictures in real-time. Althoughdata processing performance required by the codec VLSI depends oncomplexity or characteristics of a multimedia codec algorithm, recentmultimedia codec needs 0.6 giga instructions per second (GIPS) through1.5 GIPS, and it is anticipated that the required data processingperformance will reach 2 GIPS through 5 GIPS within a few years.

A method for implementing the various multimedia codecs into hardware,while obtaining a high performance, is to adopt a processor arraystructure. While a programmable processor enables the various multimediacodecs to be implemented in a short time, an array structureprogrammable processor has a potential of a high performance ofmultimedia data processing. Also, since multimedia data processing hascharacteristics of repetition of the same operation for a series of datastream, it is easy to make data processed in parallel. Data processingin parallel means that data processing tasks can be independentlyallocated into a plurality of processors and the allocated tasks can beperformed simultaneously.

A processor array for multimedia data processing generally includes alarge capacity memory having a structure to which a plurality of dataprocessing elements can simultaneously access. Accesses by more than twodata processing elements to the same physical memory may cause aconflict. To resolve the conflict, a memory access arbiter processesmemory accesses in turn by sacrificing clock cycles, so that each of thedata processing elements can access the memory normally. As the numberof data processing elements capable of accessing the same physicalmemory increases, the number of conflicts also increases continuously,so that overall multimedia data process performances are lowered.

SUMMARY OF THE INVENTION

The present invention provides an apparatus and a method for minimizingmemory access conflict when a data processing array including aplurality of data processing elements accesses a main memory, shared bythe data processing elements.

According to an aspect of the present invention, there is an apparatusfor reducing memory access conflict when a plurality of data processingelements perform simultaneous access to a memory including a pluralityof pages, each of which includes a plurality of subpages, the apparatuscomprising: an access arbiter mapping a subpage division addresscorresponding to least significant bits of a memory access addressreceived from each of the data processing elements to another addresshaving a same number of bits as the subpage division address in orderfor data to be output from each of the subpages in a corresponding pageat a time of the simultaneous access; and a selector, prepared for eachof the pages, selecting to output one of the data output from thesubpages using the mapped results.

According to another aspect of the present invention, there is provideda method of reducing memory access conflict comprising: a plurality ofdata processing elements accessing simultaneously to a memory includinga plurality of pages, each of which includes a plurality of subpages;mapping a subpage division address corresponding to least significantbits of a memory access address received from each of the dataprocessing elements to another address having a same number of bits asthe subpage division address to output data from the subpages in acorresponding page at a time of the simultaneous access; and selectingto output one of the data output simultaneously from the subpages in thecorresponding page.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other features and advantages of the present inventionwill become more apparent by describing in detail exemplary embodimentsthereof with reference to the attached drawings in which:

FIG. 1 illustrates a schematic configuration of a parallel dataprocessing array according to an embodiment of the present invention;

FIG. 2 illustrates a memory reduction apparatus and a memory pagestructure according to an embodiment of the present invention;

FIG. 3 illustrates a mapping example of subpage dividing addresses by asubpage distributor; and

FIG. 4 illustrates data location on a subpage according to a result ofthe mapping by the subpage distributor as shown in FIG. 3.

DETAILED DESCRIPTION OF THE INVENTION

The present invention will now be described more fully with reference tothe accompanying drawings, in which exemplary embodiments of theinvention are shown.

FIG. 1 illustrates a schematic configuration of a parallel dataprocessing array according to an embodiment of the present invention.

The parallel data processing array includes a plurality of dataprocessing element(DPE)s 10 and 11, an access arbiter 20, and a memory30 containing a plurality of pages.

The DPEs 10 and 11 are pipeline structure processors each of which hasinstructions and a calculation unit for data processing. In a pipelinestructure processor, since a plurality of instructions aresimultaneously executed to perform tasks at every clock cycle, aplurality of memory accesses are performed simultaneously. Since theDPEs 10 and 11 according to the present embodiment perform a pluralityof memory accesses at every clock cycle, independent memory access buses10-1 and 11-1 are required for each of the memory accesses. Each of thememory access buses 10-1 and 11-1 includes an instruction access bus forreading the instructions, two operand buses, and a result write bus. Thememory access buses 10-1 and 11-1 are connected to the access arbiter20.

The access arbiter 20 analyzes memory access request addresses in afirst memory access bus 10-1 of a first DPE 10 and memory access requestaddresses in a second memory access bus 11-1 of a second DPE 11. Basedon an analyzed result, when the memory access request addresses of thefirst and second DPEs 10 and 11 are conflicted each other, the accessarbiter 20 selects one of the memory access address pair causing theconflict, allows the selected memory access address to attempt a memoryaccess at a corresponding clock cycle and causes an access stall to anyDPE 10 and 11 requesting the non-selected memory access to access thememory in a next clock cycle.

The memory 30 accessed by the DPEs 10 and 11 is divided into a pluralityof physical memory pages in order to minimize the memory accessconflict. For example, if a memory address of the DPEs 10 and 11 is of16 bits, a memory address area is divided into four pages which haveaddresses 0x0000 to 0x3ffff, 0x40000 to 0x7ffff, 0x8000 to 0xbfff, and0xc0000 to 0xffffm respectively. By dividing the memory addresses in theabove-described way, simultaneous memory access is possible withoutconflict if the DPEs 10 and 11 access different memory pages.

However, if the same page is accessed simultaneously, conflict stilloccurs.

FIG. 2 illustrates a memory reduction apparatus and a memory pagestructure according to an embodiment of the present invention

The memory reduction apparatus includes the access arbiter 20 and aplurality of multiplexers 40 connected to the memory pages.

The access arbiter 20 shown in FIG. 2 includes a control unit 201, afirst buffer 202, a subpage distributor 203, and a second buffer.

A memory page 30-1 shown in FIG. 2 includes a plurality of subpages 301,302, 303, and 304.

The control unit 201 analyzes memory addresses output from the DPEs 10and 11. Embodiment shown in FIG. 2 is for the memory address size of 16bits. The control unit 201 divides each of the memory address into apage dividing address 202-1, a subpage address 202-2, and a subpagedividing address 202-3 and stores the divided memory address into thefirst buffer 202.

The page dividing address 202-1 is 2 most significant bits of the memoryaddress and is used to select one of the four pages of the memory 30shown in FIG. 1.

The subpage address 202-2 is between the page dividing address 202-1 andthe subpage dividing address 202-3 and used to designate a memoryaddress within a subpage. The subpage dividing address is of 4 bits andinput to the subpage distributor 203.

The subpage distributor 203 distributes, for example, the subpagedividing address 202-3, which is arranged as a table and input to thesubpage distributor 203, to new subpage dividing addresses. Referring toFIG. 2, addresses b0000 and b0001 are distributed to addresses b0001 andb0010, respectively. While the input subpage dividing address 202-3increase successively, an output subpage dividing address conforms adistribution scheme predetermined by a user. In other words, data can beaccessed simultaneously by locating the data causing conflict frequentlyto different pages. However, 16 output subpage dividing addresses arerequired to be different from each other.

The output subpage dividing address is concatenated to the subpageaddress 202-2, and is stored to the second buffer 204 as an outputsubpage address. The control unit 201 outputs data stored in 2 leastsignificant bits of the second buffer 204 as a selection signal of themultiplexers 40 in order to select an output from the subpages 301, 302,303, and 304.

12 most significant bits of the output subpage address are output asmemory addresses of the subpages 301, 302, 303, and 304.

The subpages 301, 302, 303, and 304 are memories physically dividedwithin the memory page. Each of the subpages 301, 302, 303, and 304includes one address, an input data port, and an output data port. Themultiplexer 40 selects one of data output from each of the subpages 301,302, 303, and 304, and outputs the selected data. When 2 leastsignificant bits of the second buffer 204 have different values fromeach other, data can be obtained for each subpage during a single clockcycle. Subsequently, in order to select outputs of different pages fromeach other according to an identical subpage selection signal, thereneed multiplexers 40 connected to the subpages 301, 302, 303 and 304 asmany as the number of subpages. In the present embodiment, 4multiplexers are necessary.

An output of the multiplexers 40 is selected by the page dividingaddress 202-1 and is output as a final page output.

The memory access operation shown in FIGS. 1 and 2 are described below.First, it is supposed that the first DPE 10 and the second DPE 11operate simultaneously and access the same memory page. It is alsosupposed that the first DPE 10 accesses 8 data of 0x0010 through 0x0017while the second DPE 11 accesses 8 data of 0x0014 through 0x001b.Without the subpage distributor 203, the first DPE 10 and the second DPE11 access the same physical subpage in every clock cycle so that memorystall will occur in every clock cycle. Thus, 16 clock cycles in totalwill be necessary.

Therefore, conflict can be reduced by using the subpage distributor 203for re-distributing subpages in which conflict occurs frequently.

FIG. 3 illustrates a mapping example of the subpage dividing address202-3 by the subpage distributor 203. Referring to FIG. 3, subpagedividing addresses 0x0000 through 0x0011 31 are mapped to the sameaddresses 310. Subpage dividing addresses 0x0100 through 0x0111 32 aremapped as such that each two of them are exchanged, namely 0x0101,0x0100, 0x0111, and 0x0110 320, respectively. Subpage dividing addresses33 are mapped consecutively as shown in reference number 330, whilesubpage dividing addresses 34 are mapped as in reference number 340.

FIG. 4 illustrates data locations in the subpage according to a mappingresult by the subpage distributor 203, shown in FIG. 3. According to thedata arrangement shown in FIG. 4, the first and the second DPE 10 and 11can access the memory 30 simultaneously without memory stall during theleast amount of clock cycles, that is, 8 clock cycles.

According to the present invention, since the memory stall does notoccur by dividing a memory into a plurality of pages and further divideeach of the pages into a plurality of subpages, a plurality of dataprocessing elements can access the memory simultaneously during theleast clock cycles.

While the present invention has been particularly shown and describedwith reference to exemplary embodiments thereof, it will be understoodby those of ordinary skill in the art that various changes in form anddetails may be made therein without departing from the spirit and scopeof the present invention as defined by the following claims.

1. An apparatus for reducing memory access conflict when a plurality ofdata processing elements perform simultaneous access to a memoryincluding a plurality of pages, each of which includes a plurality ofsubpages, the apparatus comprising: an access arbiter configured to mapa subpage division address corresponding to least significant bits of amemory access address received from each of the data processing elementsto another address having the same number of bits as that of the subpagedivision address in order for data to be output from each of thesubpages in a corresponding page at a time of the simultaneous access;and a selector, prepared for each of the pages, configured to select oneof the data output from the subpages using the mapped results, whereinthe access arbiter classifies the pages using most significant bits ofthe memory access address and concatenates middle bits of the memoryaccess address and most significant bits of the mapped address to use asa subpage address.
 2. The apparatus of claim 1, wherein leastsignificant bits of the concatenated address are used for the selectorto select the one of the data output from the subpages.
 3. The apparatusof claim 1, wherein the mapping is performed through a programmabletable containing pre-programmed page mapping data outputting the mappedaddress where the subpage division address is input.
 4. A method ofreducing memory access conflict when a plurality of data processingelements perform simultaneous access to a memory including a pluralityof pages, each of which includes a plurality of subpages, the methodcomprising: mapping a subpage division address corresponding to leastsignificant bits of a memory access address received from each of thedata processing elements to another address having the same number ofbits as that of the subpage division address to output data from thesubpages in a corresponding page at a time of the simultaneous access;and selecting and outputting one of the data output simultaneously fromthe subpages in the corresponding page, wherein most significant bits ofthe memory access address are used to classify the pages, and middlebits of the memory access address and most significant bits of themapped address are concatenated to be used as a subpage address.
 5. Themethod of claim 4, wherein least significant bits of the concatenatedaddress are used to select the one of the data output simultaneouslyfrom the subpages in the corresponding page.